package com.fowo.api.model.issu.order;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 订单管理订单标发 导入导出辅助模型 */
@Getter
@Setter
public class IssuOrderExcelPo {

  @NotBlank(message = "系统单号不能为空")
  @Size(max = 50, message = "系统单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*系统单号")
  private String orderId;

  @NotBlank(message = "本地状态不能为空")
  @Size(max = 50, message = "本地状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*本地状态")
  private String status;

  @Size(max = 50, message = "店铺长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "店铺")
  private String shopInfoShopName;

  @ExcelIgnore
  @ExcelProperty(value = "店铺")
  private Long shopInfo;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "站点")
  private String siteName;

  @ExcelIgnore
  @ExcelProperty(value = "站点")
  private Long site;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "客选物流")
  private String deliveryLogisticsLabel;

  @ExcelIgnore
  @ExcelProperty(value = "客选物流")
  private Long deliveryLogistics;

  @Size(max = 50, message = "物流方式长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流方式")
  private String deliveryLogisticsChannelLabel;

  @ExcelIgnore
  @ExcelProperty(value = "物流方式")
  private Long deliveryLogisticsChannel;

  @NotBlank(message = "标发单号不能为空")
  @Size(max = 50, message = "标发单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*标发单号")
  private String deliveryIssuId;

  @Size(max = 50, message = "线上状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "线上状态")
  private String onlineStatus;

  @Size(max = 50, message = "标发状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "标发状态")
  private String issuStatus;

  @Size(max = 2048, message = "标发状态内容长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "标发状态内容")
  private String issuStatusExplain;

  @Size(max = 50, message = "标发次数长度不能超过20")
  @ExcelProperty(value = "标发次数")
  private Integer issuNumber;

  @Size(max = 50, message = "标发时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "标发时间")
  private java.util.Date issuTime;

  @Size(max = 50, message = "运单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "运单号")
  private String deliveryWaybillId;

  @Size(max = 50, message = "跟踪号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "跟踪号")
  private String deliveryTrackId;
}
